# -*- coding: utf-8 -*-
import sys

from PyQt5.QtWidgets import *


class WidgetReadout(QLabel):
    def __init__(self, *args, **kwargs):

        text = kwargs.pop("text", "")
        super(WidgetReadout, self).__init__(*args, **kwargs)
        self.InitUI()

    def InitUI(self):
        self.currentText = ""
        self.openPreZero = False  # 前置补零
        self.readoutlen = 0  # 数字总宽度
        self.readoutDecimal = 0  # 小数点精度
        self.readoutUintStr = ""  # 单位字符

    # 设置取值接口
    def setIntValue(self, value):
        if self.readoutlen > 0:
            if self.openPreZero:
                formatstr = "%%0%dd" % self.readoutlen
            else:
                formatstr = "%%%dd" % self.readoutlen
        else:
            formatstr = "%d"
        self.currentText = (formatstr % value) + self.readoutUintStr
        self.setText(self.currentText)

    def setFloatValue(self, value):
        if self.readoutlen > 0:
            if self.openPreZero:
                if self.readoutDecimal > 0:
                    formatstr = "%%0%d.%df" % (self.readoutlen, self.readoutDecimal)
                else:
                    formatstr = "%%0%df" % self.readoutlen
            else:
                if self.readoutDecimal > 0:
                    formatstr = "%%%d.%df" % (self.readoutlen, self.readoutDecimal)
                else:
                    formatstr = "%%%df" % self.readoutlen
        else:
            if self.readoutDecimal > 0:
                formatstr = "%%.%df" % self.readoutDecimal
            else:
                formatstr = "%f"
        self.currentText = (formatstr % value) + self.readoutUintStr
        self.setText(self.currentText)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = WidgetReadout()
    demo.show()
    # demo.setIntValue(6)  # 设置指针指向
    demo.setFloatValue(5.5)
    # demo.setTitle("Title_____")  # 设置图标题
    sys.exit(app.exec_())
